package com.settlement.system.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysAuditCheckInVo implements Serializable {

    private Long id;

    /**
     * 责任部门核实人
     */
    private Long checkUserId;
    private String checkUserName;

    /**
     * 损失原因
     */
    private String lossReason;
    private String lossReasonName;

    /**
     * 损失原因细则名称
     */
    private String lossDetailName;
    private String lossDetailText;

    /**
     * 责任方
     */
    private String roleCode;
    private String roleName;

    /**
     * 订单核销单据状态名称
     */
    private String orderStatusName;

    /**
     * 责任方跟进结果
     */
    private String followResult;

    /**
     * 是否自认损失
     */
    private Integer ownerLoss;
    private String ownerLossName;

    /**
     * 自认损失金额（等于应收账款余额）
     */
    private BigDecimal ownerLossMoney;

    /**
     * 责任方负责人审核备注
     */
    private String managerRemark;

    /**
     * 质检时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime qualityDate;

    /**
     * 质检订单号
     */
    private String qualityNo;

    /**
     * 质检数量
     */
    private Integer qualityCount;

    /**
     * 打款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime payoutsDate;

    /**
     * 收款交易号
     */
    private String payoutsNo;

    /**
     * 追回款项余额
     */
    private BigDecimal recoverMoney;

    /**
     * 盘盈单号
     */
    private String pyNo;

    /**
     * 关联个人已办或归档核销表
     */
    private String doneId;

    /**
     * 单据编号
     */
    private String orderNo;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    // 核销记录类型 CheckInTypeEnum 默认为正常流转
    private Integer checkInType;

    // 财务调账金额
    private BigDecimal reconciliationAmount;

    /**
     * 创建人ID
     */
    private Long createBy;

    /**
     * 修改人ID
     */
    private Long updateBy;
}
